package org.zhangchao.poi.excel.common;

import java.util.Iterator;
import java.util.List;

import org.apache.poi.hssf.util.PaneInformation;
import org.apache.poi.ss.usermodel.AutoFilter;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellRange;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Footer;
import org.apache.poi.ss.usermodel.Header;
import org.apache.poi.ss.usermodel.PrintSetup;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.SheetConditionalFormatting;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;

/**
 * Excel 工作表
 * @author zhangchao
 *
 */
public class XSheet implements Sheet {
	
	/** 工作表名称 */
	private String name;
	
	/** 行集合 */
	private List<Row> rows;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public List<Row> getRows() {
		return rows;
	}

	public void setRows(List<Row> rows) {
		this.rows = rows;
	}
	
	public int size() {
		return rows.size();
	}

	//@Override
	public Iterator<Row> iterator() {
		return rows.iterator();
	}

	//@Override
	public Row createRow(int i) {
		return null;
	}

	//@Override
	public void removeRow(Row row) {
		rows.remove(row);
	}

	//@Override
	public Row getRow(int i) {
		return rows.get(i);
	}

	//@Override
	public int getPhysicalNumberOfRows() {
		return 0;
	}

	//@Override
	public int getFirstRowNum() {
		return 0;
	}

	//@Override
	public int getLastRowNum() {
		return 0;
	}

	//@Override
	public void setColumnHidden(int i, boolean flag) {
		
	}

	//@Override
	public boolean isColumnHidden(int i) {
		return false;
	}

	//@Override
	public void setRightToLeft(boolean flag) {
		
	}

	//@Override
	public boolean isRightToLeft() {
		return false;
	}

	//@Override
	public void setColumnWidth(int i, int j) {
		
	}

	//@Override
	public int getColumnWidth(int i) {
		return 0;
	}

	//@Override
	public void setDefaultColumnWidth(int i) {
		
	}

	//@Override
	public int getDefaultColumnWidth() {
		return 0;
	}

	//@Override
	public short getDefaultRowHeight() {
		return 0;
	}

	//@Override
	public float getDefaultRowHeightInPoints() {
		return 0;
	}

	//@Override
	public void setDefaultRowHeight(short word0) {
		
	}

	//@Override
	public void setDefaultRowHeightInPoints(float f) {
		
	}

	//@Override
	public CellStyle getColumnStyle(int i) {
		return null;
	}

	//@Override
	public int addMergedRegion(CellRangeAddress cellrangeaddress) {
		return 0;
	}

	//@Override
	public void setVerticallyCenter(boolean flag) {
		
	}

	//@Override
	public void setHorizontallyCenter(boolean flag) {
		
	}

	//@Override
	public boolean getHorizontallyCenter() {
		return false;
	}

	//@Override
	public boolean getVerticallyCenter() {
		return false;
	}

	//@Override
	public void removeMergedRegion(int i) {
		
	}

	//@Override
	public int getNumMergedRegions() {
		return 0;
	}

	//@Override
	public CellRangeAddress getMergedRegion(int i) {
		return null;
	}

	//@Override
	public Iterator<Row> rowIterator() {
		return rows.iterator();
	}

	//@Override
	public void setForceFormulaRecalculation(boolean flag) {
		
	}

	//@Override
	public boolean getForceFormulaRecalculation() {
		return false;
	}

	//@Override
	public void setAutobreaks(boolean flag) {
		
	}

	//@Override
	public void setDisplayGuts(boolean flag) {
		
	}

	//@Override
	public void setDisplayZeros(boolean flag) {
		
	}

	//@Override
	public boolean isDisplayZeros() {
		return false;
	}

	//@Override
	public void setFitToPage(boolean flag) {
		
	}

	//@Override
	public void setRowSumsBelow(boolean flag) {
		
	}

	//@Override
	public void setRowSumsRight(boolean flag) {
		
	}

	//@Override
	public boolean getAutobreaks() {
		return false;
	}

	//@Override
	public boolean getDisplayGuts() {
		return false;
	}

	//@Override
	public boolean getFitToPage() {
		return false;
	}

	//@Override
	public boolean getRowSumsBelow() {
		return false;
	}

	//@Override
	public boolean getRowSumsRight() {
		return false;
	}

	//@Override
	public boolean isPrintGridlines() {
		return false;
	}

	//@Override
	public void setPrintGridlines(boolean flag) {
		
	}

	//@Override
	public PrintSetup getPrintSetup() {
		return null;
	}

	//@Override
	public Header getHeader() {
		return null;
	}

	//@Override
	public Footer getFooter() {
		return null;
	}

	//@Override
	public void setSelected(boolean flag) {
		
	}

	//@Override
	public double getMargin(short word0) {
		return 0;
	}

	//@Override
	public void setMargin(short word0, double d) {
		
	}

	//@Override
	public boolean getProtect() {
		return false;
	}

	//@Override
	public void protectSheet(String s) {
		
	}

	//@Override
	public boolean getScenarioProtect() {
		return false;
	}

	//@Override
	public void setZoom(int i, int j) {
		
	}

	//@Override
	public short getTopRow() {
		return 0;
	}

	//@Override
	public short getLeftCol() {
		return 0;
	}

	//@Override
	public void showInPane(short word0, short word1) {
		
	}

	//@Override
	public void shiftRows(int i, int j, int k) {
		
	}

	//@Override
	public void shiftRows(int i, int j, int k, boolean flag, boolean flag1) {
		
	}

	//@Override
	public void createFreezePane(int i, int j, int k, int l) {
		
	}

	//@Override
	public void createFreezePane(int i, int j) {
		
	}

	//@Override
	public void createSplitPane(int i, int j, int k, int l, int i1) {
		
	}

	//@Override
	public PaneInformation getPaneInformation() {
		return null;
	}

	//@Override
	public void setDisplayGridlines(boolean flag) {
		
	}

	//@Override
	public boolean isDisplayGridlines() {
		return false;
	}

	//@Override
	public void setDisplayFormulas(boolean flag) {
		
	}

	//@Override
	public boolean isDisplayFormulas() {
		return false;
	}

	//@Override
	public void setDisplayRowColHeadings(boolean flag) {
		
	}

	//@Override
	public boolean isDisplayRowColHeadings() {
		return false;
	}

	//@Override
	public void setRowBreak(int i) {
		
	}

	//@Override
	public boolean isRowBroken(int i) {
		return false;
	}

	//@Override
	public void removeRowBreak(int i) {
		
	}

	//@Override
	public int[] getRowBreaks() {
		return null;
	}

	//@Override
	public int[] getColumnBreaks() {
		return null;
	}

	//@Override
	public void setColumnBreak(int i) {
		
	}

	//@Override
	public boolean isColumnBroken(int i) {
		return false;
	}

	//@Override
	public void removeColumnBreak(int i) {
		
	}

	//@Override
	public void setColumnGroupCollapsed(int i, boolean flag) {
		
	}

	//@Override
	public void groupColumn(int i, int j) {
		
	}

	//@Override
	public void ungroupColumn(int i, int j) {
		
	}

	//@Override
	public void groupRow(int i, int j) {
		
	}

	//@Override
	public void ungroupRow(int i, int j) {
		
	}

	//@Override
	public void setRowGroupCollapsed(int i, boolean flag) {
		
	}

	//@Override
	public void setDefaultColumnStyle(int i, CellStyle cellstyle) {
		
	}

	//@Override
	public void autoSizeColumn(int i) {
		
	}

	//@Override
	public void autoSizeColumn(int i, boolean flag) {
		
	}

	//@Override
	public Comment getCellComment(int i, int j) {
		return null;
	}

	//@Override
	public Drawing createDrawingPatriarch() {
		return null;
	}

	//@Override
	public Workbook getWorkbook() {
		return null;
	}

	//@Override
	public String getSheetName() {
		return name;
	}

	//@Override
	public boolean isSelected() {
		return false;
	}

	//@Override
	public CellRange<? extends Cell> setArrayFormula(String s,
			CellRangeAddress cellrangeaddress) {
		return null;
	}

	//@Override
	public CellRange<? extends Cell> removeArrayFormula(Cell cell) {
		return null;
	}

	//@Override
	public DataValidationHelper getDataValidationHelper() {
		return null;
	}

	//@Override
	public void addValidationData(DataValidation datavalidation) {
		
	}

	//@Override
	public AutoFilter setAutoFilter(CellRangeAddress cellrangeaddress) {
		return null;
	}

	//@Override
	public SheetConditionalFormatting getSheetConditionalFormatting() {
		return null;
	}

	////@Override
	public CellRangeAddress getRepeatingColumns() {
		return null;
	}

	////@Override
	public CellRangeAddress getRepeatingRows() {
		return null;
	}

	////@Override
	public void setRepeatingColumns(CellRangeAddress arg0) {
		
	}

	////@Override
	public void setRepeatingRows(CellRangeAddress arg0) {
		
	}
	
}
